package com.sr.recitewords.common.enums;

public enum BizExceptionEnum {
    /**
     * 服务不可用
     */
    SERVICE_CURRENTLY_UNAVAILABLE("201", "服务不可用"),

    /**
     * 未登录或token失效
     */
    NOT_LOGIN("401", "未登录或token失效"),

    /**
     * 没有操作权限
     */
    NOT_AUTHORITY("403", "没有操作权限"),

    /**
     * 不支持的请求方式
     */
    MISSING_SUPPORTED_METHODS("405", "不支持的请求方式"),

    /**
     * 缺少必选参数
     */
    MISSING_REQUIRED_ARGUMENTS("4001", "缺少必选参数"),

    /**
     * 非法的参数
     */
    INVALID_ARGUMENTS("4002", "非法的参数"),

    /**
     * 未从请求body中找到接口必要参数
     */
    REQUEST_BODY_IS_MISSING("4003", "未从请求body中找到接口必要参数"),

    /**
     * 未知错误
     */
    UNKNOWN_ERROR("5000", "未知错误"),

    /**
     * 未找到对应数据
     */
    DATA_NOT_FOUND("5001", "未找到对应数据"),

    /**
     * 数据保存失败
     */
    DATA_SAVE_FAILED("5002", "数据保存失败"),

    /**
     * 数据已存在
     */
    DATA_ALREADY_EXISTED("5003", "数据已存在"),

    /**
     * 数据有误
     */
    DATA_IS_WRONG("5004", "数据有误"),

    /**
     * 数据不可用
     */
    DATA_NOT_AVAILABLE("5005", "数据不可用"),

    /**
     * 数据不可用
     */
    CONFIGURATION_ERROR("5006", "配置错误"),

    /**
     * 无效操作
     */
    INVALID_OPERATION("5007", "无效操作"),

    /**
     * 调用次数超限
     */
    CALL_LIMITED("5010", "调用次数超限"),

    /**
     * 调用频率超限
     */
    CALL_EXCEEDS_LIMITED_FREQUENCY("5011", "调用频率超限"),

    /**
     * 系统内部接口调用异常
     */
    INTERFACE_INNER_INVOKE_ERROR("5020", "系统内部接口调用异常"),

    /**
     * 系统外部接口调用异常
     */
    INTERFACE_OUTER_INVOKE_ERROR("5021", "系统外部接口调用异常"),
    /**
     * 登录账号不能为空
     */
    LOGIN_ACCOUNT_NULL_ERROR("6000", "登录账号不能为空"),
    /**
     * 登录密码不能为空
     */
    LOGIN_PASSWORD_NULL_ERROR("6001", "登录密码不能为空"),
    /**
     * 验证码不能为空
     */
    VERIFICATION_CODE_NULL_ERROR("6002", "验证码不能为空"),
    /**
     * 登录账号不存在
     */
    LOGIN_ACCOUNT_NOT_EXIST("6003", "登录账号不存在"),

    /**
     * 登录密码错误
     */
    LOGIN_PASSWORD_ERROR("6004", "登录密码错误"),


    REDIS_ERROR("6005", "redis异常"),

    ;

    private String code;
    private String desc;

    BizExceptionEnum(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }


    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }
}
